package com.aiju.support.aop;

import java.util.List;

/**
 * @author: 佐为
 * @date: 2017-03-21 16:15
 * @version: V1.0
 * @Description: 代理工厂
 */
public interface IProxyFactory<T> {

    /**
     * 创建被代理对象
     *
     * @return
     */
    T createProxied();

    /**
     * 拦截器处理对象
     *
     * @return
     */
    IInterceptorHandler createInterceptorHandler();

    /**
     * 创建拦截器集合
     *
     * @return
     */
    List<IInterceptor> createInterceptors();

    /**
     * 执行代理
     *
     * @return
     */
    T makeProxy();
}
